home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Found / FWStream / Include / SLMemSin.xih < prev    next >
Encoding:
Text File  |  1996-04-23  |  14.9 KB  |  486 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: SLMemSin.xih.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxih.dll: 2.33
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *     File:        SLMemSin.idl
  13.  * 
  14.  *     Contains:    Interface for the memory sink class
  15.  * 
  16.  *     Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  17.  * 
  18.  */
  19.  
  20.  
  21. #ifndef SOM_FW_OMemorySink_xih
  22. #define SOM_FW_OMemorySink_xih
  23.  
  24. #include <somcls.xh>
  25. #include <somcm.xh>
  26.  
  27. /*
  28.  * Passthru lines: File: "C.xih", "before"
  29.  */
  30.  
  31.  
  32. #ifndef SOM_FW_OMemorySink_xh
  33. #include <SLMemSin.xh>
  34. #endif
  35.  
  36. /*
  37.  * Set the scope of methods functions
  38.  */
  39. #ifndef SOM_Scope
  40. #define SOM_Scope extern "C"
  41. #endif
  42.  
  43. #define FW_OMemorySink_MaxNoMethods 1
  44.  
  45. /*
  46.  * -- Instance Data
  47.  */
  48.  
  49. /*
  50.  * -- Use best possible alignment for instance data slice.
  51.  */
  52. #if PRAGMA_ALIGN_SUPPORTED
  53. #  pragma options align=power
  54. #endif
  55. typedef struct FW_OMemorySinkData {
  56.     char* fBuffer;
  57.     long fCapacity;
  58.     long fLength;
  59.     long fPosition;
  60. } FW_OMemorySinkData;
  61. #if PRAGMA_ALIGN_SUPPORTED
  62. #  pragma options align=reset
  63. #endif
  64.  
  65. /*
  66.  * -- Getdata Macro
  67.  */
  68.  
  69. /*
  70.  * -- This emitter treats Data Tokens as Thunks by default.
  71.  * -- Use the sc modifier "nothunks" to override this default.
  72.  */
  73. SOMEXTERN typedef FW_OMemorySinkData* (* SOMLINK somTD_FW_OMemorySink_DataThunk)(void*);
  74. #define FW_OMemorySinkGetData(somSelf) \
  75.    (((somTD_FW_OMemorySink_DataThunk)(FW_OMemorySinkClassData.instanceDataToken))(somSelf))
  76.  
  77. /*
  78.  * -- Instance Data Access Macros for use in Method Procedures
  79.  */
  80. #ifdef VARIABLE_MACROS
  81.   #define _fBuffer (somThis->fBuffer)
  82.   #define _fCapacity (somThis->fCapacity)
  83.   #define _fLength (somThis->fLength)
  84.   #define _fPosition (somThis->fPosition)
  85. #endif
  86.  
  87.  
  88. /*
  89.  * Trace/Debug macro
  90.  */
  91. #ifndef FW_OMemorySinkMethodDebug
  92. #define FW_OMemorySinkMethodDebug(c,m) SOMMethodDebug(c,m)
  93. #endif
  94.  
  95. /*
  96.  * -- Method Macros for use in Method Procedures
  97.  */
  98. #ifdef METHOD_MACROS
  99.   #define _GetLength somSelf->GetLength
  100.   #define _SetLength somSelf->SetLength
  101.   #define _GetPosition somSelf->GetPosition
  102.   #define _SetPosition somSelf->SetPosition
  103.   #define _GetReadableBytes somSelf->GetReadableBytes
  104.   #define _GetReadableBytes somSelf->GetReadableBytes
  105.   #define _Read somSelf->Read
  106.   #define _GetWritableBytes somSelf->GetWritableBytes
  107.   #define _Write somSelf->Write
  108.   #define _somInit somSelf->somInit
  109.   #define _somUninit somSelf->somUninit
  110.   #define _somInit somSelf->somInit
  111.   #define _somUninit somSelf->somUninit
  112.   #define _somDuplicateReference somSelf->somDuplicateReference
  113.   #define _somCompareReference somSelf->somCompareReference
  114.   #define _somRelease somSelf->somRelease
  115.   #define _somFree somSelf->somFree
  116.   #define _somCanDelete somSelf->somCanDelete
  117.   #define _somGetClass somSelf->somGetClass
  118.   #define _somGetClassName somSelf->somGetClassName
  119.   #define _somGetSize somSelf->somGetSize
  120.   #define _somIsA somSelf->somIsA
  121.   #define _somRespondsTo somSelf->somRespondsTo
  122.   #define _somIsInstanceOf somSelf->somIsInstanceOf
  123.   #define _somDispatch somSelf->somDispatch
  124.   #define _somClassDispatch somSelf->somClassDispatch
  125.   #define _somCastObj somSelf->somCastObj
  126.   #define _somResetObj somSelf->somResetObj
  127.   #define _somPrintSelf somSelf->somPrintSelf
  128.   #define _somDumpSelf somSelf->somDumpSelf
  129.   #define _somDumpSelfInt somSelf->somDumpSelfInt
  130.   #define _InitFromBuffer somSelf->InitFromBuffer
  131.   #define _somInit somSelf->somInit
  132.   #define _somUninit somSelf->somUninit
  133.   #define _Read somSelf->Read
  134.   #define _GetWritableBytes somSelf->GetWritableBytes
  135.   #define _Write somSelf->Write
  136.   #define _GetLength somSelf->GetLength
  137.   #define _SetLength somSelf->SetLength
  138.   #define _GetPosition somSelf->GetPosition
  139.   #define _SetPosition somSelf->SetPosition
  140. #endif
  141.  
  142.  
  143. /*
  144.  * Introduced methods
  145.  */
  146.  
  147. /* New Method: InitFromBuffer */
  148. SOM_Scope void  SOMLINK FW_OMemorySink__InitFromBuffer(FW_OMemorySink *somSelf, Environment *ev,
  149.         void* buffer,
  150.         long capacity,
  151.         long length);
  152.  
  153. /*
  154.  * Overridden methods
  155.  */
  156.  
  157. /* Overridden method: somInit */
  158. SOM_Scope void  SOMLINK FW_OMemorySink__somInit(FW_OMemorySink *somSelf);
  159. SOMEXTERN typedef void   (* SOMLINK somTD_xih_FW_OMemorySink_somInit)(FW_OMemorySink *somSelf);
  160. inline void  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_somInit(FW_OMemorySink *somSelf)
  161. {
  162.   (void)         (somSelf);
  163. }
  164. #define FW_OMemorySink_parents_somInit(arg0) \
  165.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_somInit(arg0)
  166.  
  167. /* Overridden method: somUninit */
  168. SOM_Scope void  SOMLINK FW_OMemorySink__somUninit(FW_OMemorySink *somSelf);
  169. SOMEXTERN typedef void   (* SOMLINK somTD_xih_FW_OMemorySink_somUninit)(FW_OMemorySink *somSelf);
  170. inline void  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_somUninit(FW_OMemorySink *somSelf)
  171. {
  172.   (void)         (somSelf);
  173. }
  174. #define FW_OMemorySink_parents_somUninit(arg0) \
  175.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_somUninit(arg0)
  176.  
  177. /* Overridden method: Read */
  178. SOM_Scope void  SOMLINK FW_OMemorySink__Read(FW_OMemorySink *somSelf, Environment *ev,
  179.         void* destination,
  180.         long count);
  181. SOMEXTERN typedef void   (* SOMLINK somTD_xih_FW_OMemorySink_Read)(FW_OMemorySink *somSelf, Environment *ev,
  182.         void* destination,
  183.         long count);
  184. inline void  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_Read(FW_OMemorySink *somSelf, Environment *ev,
  185.     void* destination,
  186.     long count)
  187. {
  188.   ((somTD_xih_FW_OMemorySink_Read)
  189.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_OSinkClassData.Read))
  190.         (somSelf,ev,destination,count);
  191. #ifdef SOMCHKEXCEPT
  192.   SOMCHKEXCEPT;
  193. #endif
  194. }
  195. #define FW_OMemorySink_parents_Read(arg0,arg1,arg2,arg3) \
  196.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_Read(arg0,arg1,arg2,arg3)
  197.  
  198. /* Overridden method: GetWritableBytes */
  199. SOM_Scope long  SOMLINK FW_OMemorySink__GetWritableBytes(FW_OMemorySink *somSelf, Environment *ev);
  200. SOMEXTERN typedef long   (* SOMLINK somTD_xih_FW_OMemorySink_GetWritableBytes)(FW_OMemorySink *somSelf, Environment *ev);
  201. inline long  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_GetWritableBytes(FW_OMemorySink *somSelf, Environment *ev)
  202. {
  203. #ifdef SOMCHKEXCEPT
  204.   long __somRetVal =   ((somTD_xih_FW_OMemorySink_GetWritableBytes)
  205.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_OSinkClassData.GetWritableBytes))
  206.         (somSelf,ev);
  207.   SOMCHKEXCEPT;
  208.   return __somRetVal;
  209. #else
  210.   return  ((somTD_xih_FW_OMemorySink_GetWritableBytes)
  211.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_OSinkClassData.GetWritableBytes))
  212.         (somSelf,ev);
  213. #endif
  214. }
  215. #define FW_OMemorySink_parents_GetWritableBytes(arg0,arg1) \
  216.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_GetWritableBytes(arg0,arg1)
  217.  
  218. /* Overridden method: Write */
  219. SOM_Scope void  SOMLINK FW_OMemorySink__Write(FW_OMemorySink *somSelf, Environment *ev,
  220.         void* source,
  221.         long count);
  222. SOMEXTERN typedef void   (* SOMLINK somTD_xih_FW_OMemorySink_Write)(FW_OMemorySink *somSelf, Environment *ev,
  223.         void* source,
  224.         long count);
  225. inline void  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_Write(FW_OMemorySink *somSelf, Environment *ev,
  226.     void* source,
  227.     long count)
  228. {
  229.   ((somTD_xih_FW_OMemorySink_Write)
  230.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_OSinkClassData.Write))
  231.         (somSelf,ev,source,count);
  232. #ifdef SOMCHKEXCEPT
  233.   SOMCHKEXCEPT;
  234. #endif
  235. }
  236. #define FW_OMemorySink_parents_Write(arg0,arg1,arg2,arg3) \
  237.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_Write(arg0,arg1,arg2,arg3)
  238.  
  239. /* Overridden method: GetLength */
  240. SOM_Scope long  SOMLINK FW_OMemorySink__GetLength(FW_OMemorySink *somSelf, Environment *ev);
  241. SOMEXTERN typedef long   (* SOMLINK somTD_xih_FW_OMemorySink_GetLength)(FW_OMemorySink *somSelf, Environment *ev);
  242. inline long  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_GetLength(FW_OMemorySink *somSelf, Environment *ev)
  243. {
  244. #ifdef SOMCHKEXCEPT
  245.   long __somRetVal =   ((somTD_xih_FW_OMemorySink_GetLength)
  246.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_ORandomAccessSinkClassData.GetLength))
  247.         (somSelf,ev);
  248.   SOMCHKEXCEPT;
  249.   return __somRetVal;
  250. #else
  251.   return  ((somTD_xih_FW_OMemorySink_GetLength)
  252.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_ORandomAccessSinkClassData.GetLength))
  253.         (somSelf,ev);
  254. #endif
  255. }
  256. #define FW_OMemorySink_parents_GetLength(arg0,arg1) \
  257.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_GetLength(arg0,arg1)
  258.  
  259. /* Overridden method: SetLength */
  260. SOM_Scope void  SOMLINK FW_OMemorySink__SetLength(FW_OMemorySink *somSelf, Environment *ev,
  261.         long length);
  262. SOMEXTERN typedef void   (* SOMLINK somTD_xih_FW_OMemorySink_SetLength)(FW_OMemorySink *somSelf, Environment *ev,
  263.         long length);
  264. inline void  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_SetLength(FW_OMemorySink *somSelf, Environment *ev,
  265.     long length)
  266. {
  267.   ((somTD_xih_FW_OMemorySink_SetLength)
  268.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_ORandomAccessSinkClassData.SetLength))
  269.         (somSelf,ev,length);
  270. #ifdef SOMCHKEXCEPT
  271.   SOMCHKEXCEPT;
  272. #endif
  273. }
  274. #define FW_OMemorySink_parents_SetLength(arg0,arg1,arg2) \
  275.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_SetLength(arg0,arg1,arg2)
  276.  
  277. /* Overridden method: GetPosition */
  278. SOM_Scope long  SOMLINK FW_OMemorySink__GetPosition(FW_OMemorySink *somSelf, Environment *ev);
  279. SOMEXTERN typedef long   (* SOMLINK somTD_xih_FW_OMemorySink_GetPosition)(FW_OMemorySink *somSelf, Environment *ev);
  280. inline long  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_GetPosition(FW_OMemorySink *somSelf, Environment *ev)
  281. {
  282. #ifdef SOMCHKEXCEPT
  283.   long __somRetVal =   ((somTD_xih_FW_OMemorySink_GetPosition)
  284.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_ORandomAccessSinkClassData.GetPosition))
  285.         (somSelf,ev);
  286.   SOMCHKEXCEPT;
  287.   return __somRetVal;
  288. #else
  289.   return  ((somTD_xih_FW_OMemorySink_GetPosition)
  290.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_ORandomAccessSinkClassData.GetPosition))
  291.         (somSelf,ev);
  292. #endif
  293. }
  294. #define FW_OMemorySink_parents_GetPosition(arg0,arg1) \
  295.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_GetPosition(arg0,arg1)
  296.  
  297. /* Overridden method: SetPosition */
  298. SOM_Scope void  SOMLINK FW_OMemorySink__SetPosition(FW_OMemorySink *somSelf, Environment *ev,
  299.         long position);
  300. SOMEXTERN typedef void   (* SOMLINK somTD_xih_FW_OMemorySink_SetPosition)(FW_OMemorySink *somSelf, Environment *ev,
  301.         long position);
  302. inline void  SOMLINK FW_OMemorySink_parent_FW_ORandomAccessSink_SetPosition(FW_OMemorySink *somSelf, Environment *ev,
  303.     long position)
  304. {
  305.   ((somTD_xih_FW_OMemorySink_SetPosition)
  306.     somParentNumResolve((somClassDataStructure*)&FW_OMemorySinkClassData, 1, FW_ORandomAccessSinkClassData.SetPosition))
  307.         (somSelf,ev,position);
  308. #ifdef SOMCHKEXCEPT
  309.   SOMCHKEXCEPT;
  310. #endif
  311. }
  312. #define FW_OMemorySink_parents_SetPosition(arg0,arg1,arg2) \
  313.   (void) FW_OMemorySink_parent_FW_ORandomAccessSink_SetPosition(arg0,arg1,arg2)
  314.  
  315. /*
  316.  * -- Primary Implementation File Support
  317.  */
  318. #if (defined(FW_OMemorySink_Class_Source) || defined(SOM_Module_slmemsin_Source))
  319.  
  320. /*
  321.  * -- The FW_OMemorySink ClassData Structure
  322.  */
  323.  
  324. #if PRAGMA_IMPORT_SUPPORTED
  325. #pragma export list FW_OMemorySinkClassData
  326. #endif
  327.  
  328.  
  329. /*
  330.  * -- The FW_OMemorySink Class Ancestor Table
  331.  */
  332. static somClassDataStructure * SOMDLINK FW_OMemorySinkClassAncestors [] = {
  333.     (somClassDataStructure*) & FW_ORandomAccessSinkClassData,    /* parent */
  334.     (somClassDataStructure*) & SOMObjectClassData,    /* ancestor */
  335.     (somClassDataStructure*) & FW_OSinkClassData,    /* ancestor */
  336. };
  337.  
  338.  
  339. /*
  340.  * -- The FW_OMemorySink Override ProcPtr Implementations Table
  341.  */
  342. static somMethodPtr FW_OMemorySinkOverrideProcs [] = {
  343.     (somMethodPtr) FW_OMemorySink__GetLength,    /* override class FW_ORandomAccessSink */
  344.     (somMethodPtr) FW_OMemorySink__SetLength,    /* override class FW_ORandomAccessSink */
  345.     (somMethodPtr) FW_OMemorySink__GetPosition,    /* override class FW_ORandomAccessSink */
  346.     (somMethodPtr) FW_OMemorySink__SetPosition,    /* override class FW_ORandomAccessSink */
  347.     (somMethodPtr) FW_OMemorySink__somInit,    /* override class SOMObject */
  348.     (somMethodPtr) FW_OMemorySink__somUninit,    /* override class SOMObject */
  349.     (somMethodPtr) FW_OMemorySink__Read,    /* override class FW_OSink */
  350.     (somMethodPtr) FW_OMemorySink__GetWritableBytes,    /* override class FW_OSink */
  351.     (somMethodPtr) FW_OMemorySink__Write,    /* override class FW_OSink */
  352. };
  353.  
  354.  
  355. static void FW_OMemorySinkDLLD ( void ) { }
  356.  
  357.  
  358. /*
  359.  * -- The FW_OMemorySink Static Class Info Master Table
  360.  */
  361. static somStaticClassInfo FW_OMemorySinkSCI = {
  362.       70,    /* layout version */
  363.     (somClassDataStructure*)  & FW_OMemorySinkClassData,    /* main token table */
  364.       FW_OMemorySinkOverrideProcs,    /* override proc implemenations table */
  365.       FW_OMemorySinkClassAncestors,    /* ancestor table */
  366.       FW_OMemorySinkDLLD,    /* DLLdesignator */
  367.       0,    /* no special procs */
  368.       0,    /* rtci slot */
  369.       0,    /* count slot */
  370.       0,    /* dynamic ancestry */
  371.       0,    /* free */
  372.       0,    /* free */
  373.       0,    /* free */
  374.       0,    /* free */
  375.  
  376. /*
  377.  * -- The FW_OMemorySink Counts Table
  378.  */
  379.     (somStaticClassCounts *)
  380.         "\x00\x00\x00\x01"    /* majorversion */
  381.         "\x00\x00\x00\x00"    /* minorversion */
  382.         "\x00\x00\x00\x01"    /* flags */
  383.             "\x00\x02"    /* type code alignment */
  384.             "\x00\x01"    /* classTokenCount */
  385.             "\x00\x01"    /* numDirectParents */
  386.             "\x00\x00"    /* numMetaClasses */
  387.             "\x00\x03"    /* numOverriddenAncestors */
  388.             "\x00\x00"    /* numMigratedMethods */
  389.             "\x00\x00"    /* numSelectedInherited */
  390.             "\x00\x00"    /* numUnused */
  391.             "\x00\x00"    /* free */
  392.             "\x00\x00"    /* free */
  393.             "\x00\x00"    /* free */
  394.             "\x00"    /* free */
  395.                 ,
  396.  
  397.     {
  398.       "FW_OMemorySink",    /* the class name */
  399.       sizeof (FW_OMemorySinkData), /* class instance data size */
  400.  
  401. /*
  402.  * -- The FW_OMemorySink Parent Versions Table
  403.  */
  404.     (somParentVersions *)
  405.         "\x00\x00\x00\x01"    /* majorversion */
  406.         "\x00\x00\x00\x00"    /* minorversion */
  407.                 ,
  408.  
  409.  
  410. /*
  411.  * -- The FW_OMemorySink Token Slot Usage Table
  412.  */
  413.     (somSlotUsage *)
  414.         "",
  415.  
  416.  
  417. /*
  418.  * -- The FW_OMemorySink Method Signature Info
  419.  */
  420.     (somSignatureInfo *)
  421.         "\x05\x07"    /* InitFromBuffer */
  422.              ,
  423.  
  424.  
  425. /*
  426.  * -- The FW_OMemorySink Class Method Names
  427.  */
  428.         "InitFromBuffer\0"
  429.             ,
  430.  
  431.  
  432. /*
  433.  * -- The FW_OMemorySink Override Slots Table
  434.  */
  435.     (somOverrideData *)
  436.         "\x00\x00\x00\x04"    /* parent FW_ORandomAccessSink has 4 overrides */
  437.             "\x00\x00"    /* GetLength */
  438.             "\x00\x01"    /* SetLength */
  439.             "\x00\x02"    /* GetPosition */
  440.             "\x00\x03"    /* SetPosition */
  441.         "\x00\x01\x00\x02"    /* parent SOMObject has 2 overrides */
  442.             "\x00\x00"    /* somInit */
  443.             "\x00\x01"    /* somUninit */
  444.         "\x00\x02\x00\x03"    /* parent FW_OSink has 3 overrides */
  445.             "\x00\x03"    /* Read */
  446.             "\x00\x04"    /* GetWritableBytes */
  447.             "\x00\x05"    /* Write */
  448.                 ,
  449.  
  450.       0,    /* no migrated methods table */
  451.       0,    /* no selected inherited */
  452.       0,    /* unused */
  453.  
  454.       0,    /* free */
  455.       0,    /* free */
  456.       0,    /* free */
  457.       0,    /* free */
  458.     },
  459. };
  460.  
  461. /*
  462.  * -- The FW_OMemorySink ClassData Structure
  463.  */
  464. struct FW_OMemorySinkClassDataStructure SOMDLINK FW_OMemorySinkClassData = {
  465.       0,            /* zero */
  466.     & FW_OMemorySinkSCI,        /* SCI link */
  467.       0,            /* instanceDataToken */
  468.       0,            /* reserved */
  469.       0,            /* reserved */
  470.       0,            /* reserved */
  471.     (somMToken) FW_OMemorySink__InitFromBuffer,    /* InitFromBuffer:method */
  472. };
  473.  
  474.  
  475. /*
  476.  * Functions for attributes.
  477.  */
  478.  
  479. /*
  480.  * Macros for initializers/destructors
  481.  */
  482.  
  483. #endif /* Primary Implementation Support */
  484.  
  485. #endif       /* SOM_FW_OMemorySink_xih */
  486.